package com.hxzy.controller;

import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author gityyge
 * @Description 发送同步消息
 * @Date 2023/8/9 17:09
 * @Version 1.0
 */
@RestController
public class ProducerNormalMessageController {

    @Autowired
    private RocketMQTemplate  rocketMQTemplate;

    /**
     *  发送同步消息
     * @param message
     * @return
     */
    @PostMapping(value = "/send/normal")
    public SendResult sendMessage01(String message){
        //1、创建一个消息
        Message<String> messageObj = MessageBuilder.withPayload(message).build();
        //2、向rocketmq发送消息
        // 目的地  destination – formats: `topicName:tags`    主题名称：标识(过滤字符)
        // 消息对象    Message
        // 消息内容对象
        SendResult sendResult = this.rocketMQTemplate.syncSend("hxzy_test:A", messageObj);

        return sendResult;
    }

    /**
     *  发送同步消息
     * @param message
     * @return
     */
    @PostMapping(value = "/send/normalNumber")
    public SendResult sendMessage02(String message,int n){
        //1、创建一个消息
        List< Message<String>> arr=new ArrayList<>();
        for(int i=1;i<=n;i++) {
            Message<String> messageObj = MessageBuilder.withPayload(message+"-"+i).build();
            //2、向rocketmq发送消息
            // 目的地  destination – formats: `topicName:tags`    主题名称：标识(过滤字符)
            // 消息对象    Message
            // 消息内容对象
            arr.add(messageObj);
        }

        SendResult sendResult = this.rocketMQTemplate.syncSend("hxzy_test:A", arr);
        return sendResult;
    }
}
